package br.com.base.test; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; import org.apache.http.HttpEntity; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.apache.openejb.OpenEjbContainer; import org.apache.openejb.jee.WebApp; import org.apache.openejb.jee.jpa.unit.PersistenceUnit; public class IntegrationTestCase { protected PersistenceUnit setupPersistenceUnit() { PersistenceUnit unit = new PersistenceUnit("primary"); unit.setJtaDataSource("openejb/Resource/ESBDS"); unit.setProvider("org.hibernate.ejb.HibernatePersistence"); unit.setProperty("hibernate.transaction.manager_lookup_class", "org.apache.openejb.hibernate.TransactionManagerLookup"); unit.setProperty("hibernate.hbm2ddl.auto", "update"); unit.setProperty("hibernate.show_sql", "false"); return unit; } protected WebApp setupWebApp() { return new WebApp().contextRoot(""); } @SuppressWarnings("serial") protected Properties setupConfigurationProperties() { return new Properties() { { setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true"); setProperty("ESBDS", "new://Resource?type=DataSource"); setProperty("ESBDS.JdbcDriver", "org.hsqldb.jdbcDriver"); setProperty("ESBDS.JdbcUrl", "jdbc:hsqldb:mem:."); } }; } protected SimplifiedResponse post(String path, Map<String, String> formParameters) { List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); for (Entry<String, String> entry : formParameters.entrySet()) { nameValuePairs.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } SimplifiedResponse responseToReturn = null; HttpClientBuilder clientBuilder = HttpClients.custom(); try (CloseableHttpClient httpClient = clientBuilder.build()) { HttpPost request = new HttpPost("http://localhost:4204" + path); HttpEntity entity = new UrlEncodedFormEntity(nameValuePairs); request.setEntity(entity); try (CloseableHttpResponse response = httpClient.execute(request)) { responseToReturn = new SimplifiedResponse(response.getStatusLine().getStatusCode(), EntityUtils.toString(response.getEntity())); } } catch (IOException e) { new RuntimeException(e); } return responseToReturn; } }